#include <iostream>
#include <boost/asio.hpp>

void print(const boost::system::error_code& error);

int main()
{
    boost::asio::io_context io;
    boost::asio::steady_timer t(io, boost::asio::chrono::seconds(5));

    t.async_wait(&print);
    // 在调用 boost::asio::io_context::run() 之前，要给io_context一些工作要做。
    // 例如，如果我们省略了上述对 steady_timer::async_wait() 的调用，则 io_context 将没有任何工作要做，因此 boost::asio::io_context::run() 将立即返回。
    // io.run();

    io.run();

    return 0;
}

void print(const boost::system::error_code& /*e*/)
{
    std::cout << "Hello, world!" << std::endl;
}
